OneStream WebAPI Endpoints

This API implementation is client agnostic therefore every API test capable third-party tool can be pointed to OneStreamWeb API endpoints. This tutorial is using Postman. Note that all arguments in the body are required unless otherwise specified.

Versioning This implementation will start with Api-version=5.2.0

Data Management Execute Sequence endpoint

  1. Create new POST request in Postman, 

  2. Url= http(s)://[servername]:[port]/onestreamapi/api/DataManagement/ExecuteSequence?api-version=5.2.0

  3. Authorization: Type=Bearer Token. Token={{webapi_access_token}}

  4. Headers: Content-Type=application/json

  5. Body (raw / jSON):        

     {
           "BaseWebServerUrl": [OneStream Server Logon URL],

         "WorkspaceName": [your workspace name], - Optional
           "ApplicationName":[your application name],
           "SequenceName": [existing sequence name],
           "CustomSubstVarsAsCommaSeparatedPairs": [comma separated list of key value pairs as substitution variables with the following format: "VariableName1=[VariableValue1],VariableName2=[VariableValue2],..."] - Optional
     }

  6. Click Send and observe the response at the bottom pane. If successful, a message of "Data Management Sequence [sequence name] was completed" will be returned otherwise a descriptive error message will show. More details will be logged in the Error and Activity logs.

Data Management Execute Step endpoint

  1. Create new POST request in Postman, 

  2. Url= http(s)://[servername]:[port]/onestreamapi/api/DataManagement/ExecuteStep?api-version=5.2.0

  3. Authorization: Type=Bearer Token. Token={{webapi_access_token}}

  4. Headers: Content-Type=application/json

  5. Body (raw / jSON):          

    {
         "BaseWebServerUrl": [OneStream Server Logon URL],
         "ApplicationName":[your application name],
         "DataManagementGroupName": [an existing data management group name],
         "StepName": [existing step name],
         "CustomSubstVarsAsCommaSeparatedPairs": [comma separated list of key value pairs as substitution variables with the following format: "VariableName1=[VariableValue1],VariableName2=[VariableValue2],..."] - Optional
     }
  6. Click Send and observe the response at the bottom pane. If successful, a message of "Data Management Step [step name] was completed" will be returned otherwise a descriptive error message will show. More details will be logged in the Error and Activity logs.

Data ProviderGetAdoDataSetForAdapter endpoint

  1. Create new POST request in Postman, 

  2. Url= http(s)://[servername]:[port]/onestreamapi/api/DataProvider/GetAdoDataSetForAdapter?api-version=5.2.0

  3. Authorization: Type=Bearer Token. Token={{webapi_access_token}}

  4. Headers: Content-Type=application/json

  5. Body (raw / jSON):          

    {
         "BaseWebServerUrl": [OneStream Server Logon URL],
         "ApplicationName":[your application name],
         "WorkspaceName": Reserved for future use. Use an empty string. - Optional,
         "AdapterName": [existing adapter name],
         "ResultDataTableName": [name of resulting table in the DataSet],
         "CustomSubstVarsAsCommaSeparatedPairs": [comma separated list of key value pairs as substitution variables with the 
    	following format: "VariableName1=[VariableValue1],VariableName2=[VariableValue2],..."] - Optional
     }
    Example:
    {
        "BaseWebServerUrl": "https://olympus.onestreamtest.com/onestreamweb",
        "ApplicationName": "GolfStream_v37",
        "IsSystemLevel": "False",
        "AdapterName": "ActivityClassListing_PLP",
        "ResultDataTableName": "ResultsTable",
        "CustomSubstVarsAsCommaSeparatedPairs": ""
    }
  6. Click Send and observe the response at the bottom pane. If successful, a JSON data table will be returned otherwise a descriptive error message will show. More details will be logged in the Error and Activity logs.

    This is a returned response from the request using the above body example in Postman:

    {
        "ResultsTable": [
            {
                "ClassID""100_Salary",
                "Name""100 - Salary",
                "Description""100 - Salary",
                "ValueType"0,
                "ValueTypeName""Wage Percentage",
                "ClassItemID""79b612b9-8cb4-49ca-9a0d-d13c7683a7f2",
                "Description1""100 - Salary",
                "WeightOrValue""1",
                "FKAccountID""Salary_Exp",
                "Flow""None",
                "IC""None",
                "UD1""None",
                "UD2""None",
                "UD3""None",
                "UD4""None",
                "UD5""None",
                "UD6""None",
                "UD7""None",
                "UD8""None",
                "Sequence"10.0,
                "FKClassID""100_Salary"
        },
]}}

Data ProviderGetAdoDataSetForCubeViewCommand endpoint

  1. Create new POST request in Postman, 

  2. Url= http(s)://[servername]:[port]/onestreamapi/api/DataProvider/ GetAdoDataSetForCubeViewCommand?api-version=5.2.0

  3. Authorization: Type=Bearer Token. Token={{webapi_access_token}}

  4. Headers: Content-Type=application/json

  5. Body (raw / jSON):          

    {
         "BaseWebServerUrl": [OneStream Server Logon URL],
         "ApplicationName":[your application name],
         "CubeViewName": [existing Cube View name],
         "DataTablePerCubeViewRow ": [if true returns a Data Table Per Cube View row - bool],
         "ResultDataTableName": [name of resulting table in the DataSet],
         "CubeViewDataTableOptions": [set of formatting bolean options for the returned table - Optional],
         "CustomSubstVarsAsCommaSeparatedPairs": [comma separated list of key value pairs as substitution variables with the 
    	following format: "VariableName1=[VariableValue1],VariableName2=[VariableValue2],..."] - Optional
     }

    Example:

    {
        "BaseWebServerUrl": "https://olympus.onestreamtest.com/onestreamweb",
        "ApplicationName": "GolfStream_v37",
        "CubeViewName": "Gross Margin",
        "DataTablePerCubeViewRow": false,
        "ResultDataTableName": "ResultDataTableNames",
        "CustomSubstVarsAsCommaSeparatedPairs": "",
        "CubeViewDataTableOptions": {
                    "IncludeTitle": false,
                    "IncludeHeaderLeftLabel1" : true,
                    "IncludeHeaderLeftLabel2" : true,
                    "IncludeHeaderLeftLabel3" : true,
                    "IncludeHeaderLeftLabel4" : true,
                    "IncludeHeaderCenterLabel1" : true,
                    "IncludeHeaderCenterLabel2" : true,
                    "IncludeHeaderCenterLabel3" : true,
                    "IncludeHeaderCenterLabel4" : true,
                    "IncludeHeaderRightLabel1" : true,
                    "IncludeHeaderRightLabel2" : true,
                    "IncludeHeaderRightLabel3" : true,
                    "IncludeHeaderRightLabel4" : true,
                    "IncludePovCube" : true,
                    "IncludePovEntity" : true,
                    "IncludePovParent" : true,
                    "IncludePovCons" : true,
                    "IncludePovScenario" : true,
                    "IncludePovTime" : true,
                    "IncludePovView" : true,
                    "IncludePovAccount" : true,
                    "IncludePovFlow" : true,
                    "IncludePovOrigin" : true,
                    "IncludePovIC" : true,
                    "IncludePovUD1" : true,
                    "IncludePovUD2" : true,
                    "IncludePovUD3" : false,
                    "IncludePovUD4" : true,
                    "IncludePovUD5" : false,
                    "IncludePovUD6" : true,
                    "IncludePovUD7" : false,
                    "IncludePovUD8" : true,
                    "IncludeMemberDetails": true,
                    "IncludeRowNavigationLink" : true,
                    "IncludeHasDataStatus" : true,
                    "IncludeAnnotation" : true,
                    "IncludeAssumptions" : true,
                    "IncludeAuditComment" : true,
                    "IncludeFootnote" : true,
                    "IncludeVarianceExplanation" : true
                }
}
  1. Click Send and observe the response at the bottom pane. If successful, a JSON data table will be returned otherwise a descriptive error message will show. More details will be logged in the Error and Activity logs.

    This is a returned response from the request using the above body example in Postman:

    {
        "ResultDataTableNames": [
            {
                "RowId"0,
                "RowName""Row1",
                "HeaderLeftLabel1""",
                "HeaderLeftLabel2""",
                "HeaderLeftLabel3""",
                "HeaderLeftLabel4""",
                "HeaderCenterLabel1""",
                "HeaderCenterLabel2""",
                "HeaderCenterLabel3""",
                "HeaderCenterLabel4""",
                "HeaderRightLabel1""",
                "HeaderRightLabel2""",
                "HeaderRightLabel3""",
                "HeaderRightLabel4""",
                "PovCubeId"5,
                …
                "Col8VarianceExplanation"""
           },
] } }

Data ProviderGetAdoDataSetForSqlCommand endpoint

  1. Create new POST request in Postman, 

  2. Url= http(s)://[servername]:[port]/onestreamapi/api/DataProvider/ GetAdoDataSetForSqlCommand?api-version=5.2.0

  3. Authorization: Type=Bearer Token. Token={{webapi_access_token}}

  4. Headers: Content-Type=application/json

  5. Body (raw / jSON):          

    {
         "BaseWebServerUrl": [OneStream Server Logon URL],
         "ApplicationName":[your application name],
         "SqlQuery ": [sql query statement used to return data],
         "DbLocation": [specify if data from an external database referenced in the configuration will need to be returned - string - defaults to "Application" -  Optional],

         "ResultDataTableName": [name of resulting table in the DataSet],

         "XFExternalDBConnectionNam ": [specify if DbLocation is set to "External”],

         "CustomSubstVarsAsCommaSeparatedPairs": [comma separated list of key value pairs as substitution variables with the following format: "VariableName1=[VariableValue1],VariableName2=[VariableValue2],..."] - Optional
     }

    Example:

    {
        "BaseWebServerUrl": "https://olympus.onestreamtest.com/onestreamweb",
        "ApplicationName": "GolfStream_v37",
        "SQLQuery": "Select TOP 100 * from Cube",
        "ResultDataTableName": "ResultDataTableName",
        "DBLocation": "Application",
        "XFExternalConnectionName": "",
        "CustomSubstVarsAsCommaSeparatedPairs": ""
    }
  6. Click Send and observe the response at the bottom pane. If successful, a JSON data table will be returned otherwise a descriptive error message will show. More details will be logged in the Error and Activity logs.

    This is a returned response from the request using the above body example in Postman:

    {
        "ResultDataTableName": [
            {
                "CubeId"0,
                "Name""Houston",
                "Description""Houston Clubs",
                "CubeType"0,
                "IsTopLevelCube"false,
                "TimeDimProfileID""664c9bd4-a314-4941-81be-513aeddac13a",
                "AccessGroupUniqueID""e31054d8-83bf-4f79-b563-0e450342de9e",
                "MaintenanceGroupUniqueID""e31054d8-83bf-4f79-b563-0e450342de9e",
                "ConsAlgorithmType"0,
                "TransAlgorithmType"0,
                "CalcNoneConsIfNoData"false,
                "CalcLocalCurrIfNoData"true,
                "CalcTransCurrsIfNoData"false,
                "CalcOwnerPreAdjIfNoData"false,
                "CalcShareIfNoData"false,
                "CalcElimIfNoData"false,
                "CalcOwnerPostAdjIfNoData"false,
                "BR1Name""CorporateBusinessRules",
                "BR2Name""",
                "BR3Name""",
                "BR4Name""",
                "BR5Name""",
                "BR6Name""",
                "BR7Name""",
                "BR8Name""",
                "DefaultCurrencyId"176,
                "FxRateTypeIDForRevExp""89ce1f1c-c1cb-438e-9825-e00861a4fa5b",
                "FxRuleTypeIdForRevExp"1,
                "FxRateTypeIDForAssetLiab""89ce1f1c-c1cb-438e-9825-e00861a4fa5b",
                "FxRuleTypeIdForAssetLiab"0,
                "XmlData"""
            },
    ...
    ] } }

    IMPORTANT: The Administrator role is required for this functionality.

Data ProviderGetAdoDataSetForMethodCommand endpoint

  1. Create new POST request in Postman, 

  2. Url= http(s)://[servername]:[port]/onestreamapi/api/DataProvider/ GetAdoDataSetForMethodCommand?api-version=5.2.0

  3. Authorization: Type=Bearer Token. Token={{webapi_access_token}}

  4. Headers: Content-Type=application/json

  5. Body (raw / jSON):          

    {
         "BaseWebServerUrl": [OneStream Server Logon URL],
         "ApplicationName":[your application name],
         "MethodQuery":[method query to return data],
         "XFCommandMethodTypeId": [pre-defined list of XF method commands used by    XFDataProvider to fill a DataSet],
         "ResultDataTableName": [name of resulting table in the DataSet],
         "CustomSubstVarsAsCommaSeparatedPairs": [comma separated list of key value pairs as substitution variables with the 
    	following format: "VariableName1=[VariableValue1],VariableName2=[VariableValue2],..."] - Optional
     }

    Example:

    {
        "BaseWebServerUrl": "https://olympus.onestreamtest.com/onestreamweb",
        "ApplicationName": "GolfStream_v37",
        "MethodQuery ": "{Houston}{Actual}{2018M1}{true}{}",
        "XFCommandMethodTypeId ": "CertificationForWorkflowUnit",
        "ResultDataTableName": "MyResultsTable",
        "CustomSubstVarsAsCommaSeparatedPairs": ""
    }
    XFCommandMethodTypeId may take any values from the list below:
    "WorkflowCalculationEntities"
    "WorkflowConfirmationEntities"
    "WorkflowProfileAndDependentProfileEntities"
    "WorkflowProfileEntities"
    "WorkflowProfiles"
    "WorkflowProfileRelatives"
    "WorkflowStatus"
    "WorkflowStatusTwelvePeriod"
    "WorkflowAndEntityStatus
    "JournalsForWorkflowUnit"
    "FormsStatusForWorkflowUnit"
    "ConfirmationForWorkflowUnit"
    "CertificationForWorkflowUnit"
    "ICMatchingForWorkflowUnit"
    "ICMatchingForWorkflowUnitMultiPlug"
    "ICMatchingForWorkflowUnitMultiPeriod"
    "ICMatchingPlugAccountsForWorkflowUnit"
  6. Click Send and observe the response at the bottom pane. If successful, a JSON data table will be returned otherwise a descriptive error message will show. More details will be logged in the Error and Activity logs.

    This is a returned response from the request using the above body example in Postman:

    {
        "MyResultsTable": [
            {
                "ProfileName""Houston",
                "ProfileKey""2f3a719e-8e26-4d8c-8cc7-4544a4812673",
                "ProfileOrder"1,
                "ScenarioName""Actual",
                "ScenarioKey"0,
                "TimeKey"2018003000,
                "TimeName""2018M1",
                "CertProfileKey""003e0a15-6c9a-412c-90ba-64d31040c314",
                "CertName""Plant Certification",
                "CertDescription""Plant Certification",
                "CertSignOffState""Inprocess",
                "CertIsCertified"false,
                "CertCanCertify"false,
                "CertIsParentCertified"false,
                "CertAreDependantsCertified"false,
                "CertAllAnswered"false,
                "CertQuestionCount"3,
                "CertUnansweredCount"3,
                "CertUnansweredRate"1.0,
                "GroupKey""7c7fedcd-f04a-4f5b-ba13-ed1097f449a9",
                "GroupName""SOX Plant Controller",
                "GroupDescription""SOX Plant Controller",
                "GroupSignOffState""Inprocess",
                "GroupAllAnswered"false,
                "GroupQuestionCount"3,
                "GroupUnansweredCount"3,
                "GroupUnansweredRate"1.0,
                "QuestionUniqueID""8a92f59c-2419-49d2-87b7-1cdfb21c7072",
                "QuestionName""Unusual Transactions",
                "QuestionCategory""InternalAudit",
                "QuestionRiskLevel""High",
                "QuestionFrequency""AllTimePeriods",
                "TimeFilterForReqtFreq""",
                "QuestionText""Any unusual transactions booked? If so, explain. ",
                "QuestionResponse""-1",
                "QuestionComments""",
                "QuestionResponseOptional"false,
                "QuestionDeactivated"false,
                "QuestionDeactivationDate""1900-01-01T00:00:00",
                "QuestionDisplayOrder"10
            },
            {
                "ProfileName""Houston",
                "ProfileKey""2f3a719e-8e26-4d8c-8cc7-4544a4812673",
                "ProfileOrder"1,
                "ScenarioName""Actual",
                "ScenarioKey"0,
                "TimeKey"2018003000,
                "TimeName""2018M1",
                "CertProfileKey""003e0a15-6c9a-412c-90ba-64d31040c314",
                "CertName""Plant Certification",
                "CertDescription""Plant Certification",
                "CertSignOffState""Inprocess",
                "CertIsCertified"false,
                "CertCanCertify"false,
                "CertIsParentCertified"false,
                "CertAreDependantsCertified"false,
                "CertAllAnswered"false,
                "CertQuestionCount"3,
                "CertUnansweredCount"3,
                "CertUnansweredRate"1.0,
                "GroupKey""7c7fedcd-f04a-4f5b-ba13-ed1097f449a9",
                "GroupName""SOX Plant Controller",
                "GroupDescription""SOX Plant Controller",
                "GroupSignOffState""Inprocess",
                "GroupAllAnswered"false,
                "GroupQuestionCount"3,
                "GroupUnansweredCount"3,
                "GroupUnansweredRate"1.0,
                "QuestionUniqueID""78e102c2-cda5-4c07-b853-416d83de5706",
                "QuestionName""Audit Transactions",
                "QuestionCategory""ExternalAudit",
                "QuestionRiskLevel""High",
                "QuestionFrequency""AllTimePeriods",
                "TimeFilterForReqtFreq""",
                "QuestionText""Any transactions to be reviewed by external audit? If so, explain. ",
                "QuestionResponse""-1",
                "QuestionComments""",
                "QuestionResponseOptional"false,
                "QuestionDeactivated"false,
                "QuestionDeactivationDate""1900-01-01T00:00:00",
                "QuestionDisplayOrder"20
            },
            {
                "ProfileName""Houston",
                "ProfileKey""2f3a719e-8e26-4d8c-8cc7-4544a4812673",
                "ProfileOrder"1,
                "ScenarioName""Actual",
                "ScenarioKey"0,
                "TimeKey"2018003000,
                "TimeName""2018M1",
                "CertProfileKey""003e0a15-6c9a-412c-90ba-64d31040c314",
                "CertName""Plant Certification",
                "CertDescription""Plant Certification",
                "CertSignOffState""Inprocess",
                "CertIsCertified"false,
                "CertCanCertify"false,
                "CertIsParentCertified"false,
                "CertAreDependantsCertified"false,
                "CertAllAnswered"false,
                "CertQuestionCount"3,
                "CertUnansweredCount"3,
                "CertUnansweredRate"1.0,
                "GroupKey""7c7fedcd-f04a-4f5b-ba13-ed1097f449a9",
                "GroupName""SOX Plant Controller",
                "GroupDescription""SOX Plant Controller",
                "GroupSignOffState""Inprocess",
                "GroupAllAnswered"false,
                "GroupQuestionCount"3,
                "GroupUnansweredCount"3,
                "GroupUnansweredRate"1.0,
                "QuestionUniqueID""3d9c4dcc-75fd-4568-b224-f7e428622917",
                "QuestionName""Key Data Review",
                "QuestionCategory""FinancialStatementReview",
                "QuestionRiskLevel""MediumLow",
                "QuestionFrequency""AllTimePeriods",
                "TimeFilterForReqtFreq""",
                "QuestionText""Have all key metrics been reviewed? ",
                "QuestionResponse""-1",
                "QuestionComments""",
                "QuestionResponseOptional"false,
                "QuestionDeactivated"false,
                "QuestionDeactivationDate""1900-01-01T00:00:00",
                "QuestionDisplayOrder"30
            }
        ],
        "MyResultsTable_SignOffCert": [
            {
                "ProfileKey""2f3a719e-8e26-4d8c-8cc7-4544a4812673",
                "ScenarioKey"0,
                "TimeKey"2018003000,
                "CertProfileKey""003e0a15-6c9a-412c-90ba-64d31040c314",
                "SignOffState""Inprocess",
                "Comments""Sign-Off Initialized",
                "UserKey""2b61ed59-63ae-46f2-89aa-a8ee9f14bacd",
                "UserName""TestUserOkta",
                "UserIPAddress""8d3d857e-cd62-4fd9-a2ec-43b46217a036",
                "TimeStamp""2019-11-18T14:45:00.007"
            }
        ],
        "MyResultsTable_SignOffGroups": [
            {
                "ProfileKey""2f3a719e-8e26-4d8c-8cc7-4544a4812673",
                "ScenarioKey"0,
                "TimeKey"2018003000,
                "CertProfileKey""003e0a15-6c9a-412c-90ba-64d31040c314",
                "CertProfileName""Plant Certification",
                "GroupKey""7c7fedcd-f04a-4f5b-ba13-ed1097f449a9",
                "GroupName""SOX Plant Controller",
                "SignOffState""Inprocess",
                "Comments""Sign-Off Initialized",
                "UserKey""2b61ed59-63ae-46f2-89aa-a8ee9f14bacd",
                "UserName""TestUserOkta",
                "UserIPAddress""8d3d857e-cd62-4fd9-a2ec-43b46217a036",
                "TimeStamp""2019-11-18T14:45:00.2"
            }
        ]
    }

IMPORTANT: The Administrator role is required for this functionality.

Authentication Execute LogonAndReturnCookie endpoint

Returns a message that indicates authentication state. Used mostly to verify the installation of web API completed successfully.

  1. Create new POST request in Postman, 

  2. Url= http(s)://[servername]:[port]/OneStreamApi/api/Authentication/LogonAndReturnCookie?api-version=5.2.0

  3. Authorization: Type=Bearer Token. Token={{webapi_access_token}}

  4. Headers: Content-Type=application/json

  5. Body (raw / jSON):         

    Arguments:
    "BaseWebServerUrl": [OneStream Server Logon URL],
    "ApplicationName" : [name of Application attempted to access]

    <response code="200">Returns a JSON representation of the resulting DataSet.</response>
    <response code="400">Bad Request. Missing Authentication arguments. </response>
    <response code="500">Error Message. Authentication Failed. Please check the Error Log for more details</response>

    Click Send and observe the response at the bottom pane. If successful, a message that indicates authentication state will be returned. Otherwise the error message will be shown. More details will be logged in the Error and Activity logs.